<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
	<title>Documentation</title>
	<link href="book.css" rel="stylesheet" type="text/css">
	<link href="code.css" rel="stylesheet" type="text/css">
	<link rel="home" href="index.html" title="">
</head>
<body>

<h1 id="introduction">Introduction</h1>

<p>Xtend is a statically-typed programming language which translates to comprehensible Java source code. Syntactically and semantically Xtend has its roots in the Java programming language but improves on many aspects:</p>

<ul>
  <li><strong><a href="202_xtend_classes_members.html#extension-methods">Extension methods</a></strong> - enhance closed types with new functionality</li>
  <li><strong><a href="203_xtend_expressions.html#lambdas">Lambda Expressions</a></strong> - concise syntax for anonymous function literals</li>
  <li><strong><a href="204_activeannotations.html">ActiveAnnotations</a></strong> - annotation processing on steroids</li>
  <li><strong><a href="203_xtend_expressions.html#operators">Operator overloading</a></strong> - make your libraries even more expressive</li>
  <li><strong><a href="203_xtend_expressions.html#switch-expression">Powerful switch expressions</a></strong> - type based switching with implicit casts</li>
  <li><strong><a href="202_xtend_classes_members.html#polymorphic-dispatch">Multiple dispatch</a></strong> - a.k.a. polymorphic method invocation</li>
  <li><strong><a href="203_xtend_expressions.html#templates">Template expressions</a></strong> - with intelligent white space handling</li>
  <li><strong><a href="203_xtend_expressions.html">No statements</a></strong> - everything is an expression</li>
  <li><strong><a href="203_xtend_expressions.html#property-access">Properties</a></strong> - shorthands for accessing and defining getters and setter</li>
  <li><strong>Type inference</strong> - you rarely need to write down type signatures anymore</li>
  <li><strong>Full support for Java generics</strong> - including all conformance and conversion rules</li>
  <li><strong>Translates to Java</strong> not bytecode - understand what is going on and use your code for platforms such as Android or GWT</li>
</ul>

<p>Unlike other JVM languages Xtend has <a href="201_types.html">zero interoperability issues</a> with Java: Everything you write interacts with Java exactly as expected. At the same time Xtend is much more concise, readable and expressive. Xtend’s small library is just a thin layer that provides useful utilities and extensions on top of the Java Development Kit (JDK).</p>

<p>Of course, you can call Xtend methods from Java, too, in a completely transparent way. Furthermore, Xtend provides a modern Eclipse-based IDE closely integrated with the Eclipse Java Development Tools (JDT), including features like call-hierarchies, rename refactoring, debugging and many more.</p>

<hr />

<p><strong><a href="101_gettingstarted.html">Next Chapter: Hello World</a></strong></p>


</body>
</html>
